Copyright: Copyright (c)1993 Cerious Software


Contents

Introduction

Menus

Keyboard

Toolbar

Selecting and Zooming

Restrictions

Ordering Information


Introduction

The Mandel program produces a display of the Mandelbrot set, named for Benoît Mandelbrot who "discovered" it. The program produces a visual representation of the set by iterating z2 + c  over each point of the complex plain and determining whether or not iterations for that point are bounded. Points for which the iterations are bounded are members of the set. To provide a pleasing display, points for which the iterations are unbounded are displayed in color based on the number of iterations before the absolute value passes the boundary limit of 1+2. In the example below, the black area is the set itself.

This image is interestingbut wait until you zoom into the set, using either the mouse or the keyboardkeyboard. Concentrate on areas that appear complicated or random on the display.

Mandel can use 32 or 64-bit fixed-point arithmetic to considerably speed the computations. Also, 386 instructions and "fast area fill" may be used to speed the calculations even further. The retail version includes server software for Unix-based computations, transfering the results to the PC via Wollongong TCP/IP. See Compute Options for additional information on computation; see Server Setup about setting up a compute server.

Mandel includes several brilliant and a few mundane color schemes (palettes) for displaying the set. For most palettes, a 256 color palette-based Super VGA display is required. For more interesting effects, colors may be rotated, sorted, shuffled and animated. You can paste palettes from images copied to the clipboard from other graphics programs. You can edit the current palette, create new palettes, and save them to use later. Some of these options are available only on palette based displays; these are marked in the help file with 256.

Mandel can create images larger than the window size, up to 2000 x 2000 pixels. You can set the size of the image and various other display options in the Display Options dialog box. Mandel also supports a Full Screen mode, where no borders, captions or menu bar clutter the view.

Mandel images may be saved to disk files. If saved in the midst of computations, opening the saved file will continue right where they left off. Mandel will save files as complete images (compressed), image descriptions (which will be completely recomputed when opened, but require much less disk space) or Windows bitmap files, which can be used as desktop wallpaper or as input to other graphics applications.

The Coördinates dialog box displays where you are in the set and allows you to enter specific coördinates to compute. The Statistics window shows how computations are going, providing comparisons between computational methods and the efficiency of fast area fill.


Menus

File

Edit

Colors

Options

Help


File Menu

Open...

Save As...

Save

Save Setup

Revert


File-Open
 Open...

Brings up a standard Open dialog box to open a file.

Mandel can open two file formats: .MND and .MNI. More information on these file types is provided in the Save As... section. For both types of files, display, compute and color options are set to the values from the saved file.


File-Save As
Save As...

This dialog box allows you to save Mandelbrot images or descriptions.

Mandel supports three file formats for saving:

.MND	Mandelbrot set files. Both the description of the current area (coördinates, display and compute options, colors) and the set itself are written to the file. The set is run-length encoded to decrease disk usage.

If a .MND file is saved while computing, it will pick up where it left off when opened.

.MNI	Mandelbrot description files. Only the description of the current area is written to the file. When opened, all points are re-computed from this description.

.BMP	Writes a 256-color Windows bitmap file, which may be used as wallpaper or imported into various graphics programs.


File-Save
 Save	Ctrl+S

This selection saves the current area to the last file opened or saved, in the same format as that file.


File-Save Setup
Save Setup

Saves the current environment, including color scheme, window size, calculation method, iteration limit and execution priority.


File-Revert
Revert

Loads and applies the last saved setup values to the current window.


Edit Menu

Select All

Paste Palette


Edit-Select All
Select All	Shift+F2

Selects the entire image for spawning or copying to the clipboard. See Selecting and Zooming below.


Edit-Paste Palette
Paste Palette	256

Will retrieve a color palette from the clipboard and apply it to the current image. This palette may be sorted, rotated or animated as any other.


Colors Menu

Palette

Rotate

Animate

Shuffle

Sort

Edit


Colors-Rotate
 Rotate	F3

Rotates the current color scheme and re-displays the image.


Colors-Animate
 Animate	F4	256

Continuously rotates the current palette, producing interesting visual effects. Palette animation is available only on palette-based displays (generally 256 or more colors). You can change the animation speed and direction using the Display Options dialog box.


Colors-Shuffle
Shuffle	F5

Shuffles the current color scheme and re-displays.


Colors-Sort
Sort	F6

Sorts the current color scheme from light to dark (Shift+F6), dark to light (Ctrl+F6), or by spectrum (F6).


Palette Editor
 Edit Palette	F9	256

The palette editor allows you to modify existing color palettes for use with Mandelbrot, or to create your own from scratch. This function is only available on palette-based displays (256 or more colors)

Name

The name of the palette from the MANDEL.PAL file. If the palette has been modified by rotating, sorting, etc., this field will appear as (new). You can also change the name of an existing palette by changing it here and selecting Save.

Current Range

This field displays a magnified view of the selected color and those around it. This makes selection of a particular color easier when the palette has a large number of colors. Clicking on a color here makes it the selected color and the current color.

Full Palette

This control displays the complete palette being edited. Clicking on a color here will make it the selected color and the current color. You can select the tween color by holding down the SHIFT key while clicking the left mouse button.

Cut

Cuts the selected range (those colors between the selected color and the 'tween color, inclusive) of palette entries to the clipboard.

Copy

Copies the selected range of palette entries to the clipboard.

Paste

Pastes a palette from the clipboard into the selected range. Note that only the number of colors currently selected will be pasted.

Sort

Sorts the selected range by spectrum (RGB distance).

Tween

Interpolates intervening colors between the selected color and the tween color, using a simple formula that divides the distance for each RGB value by the number of colors between the two.

Undo

Undoes the last operation that changed the palette.

Adjustor Pad

The adjustor pad displays the current color in the center. The eight buttons surrounding the current color are changes to this color based on the following chart. The numbers indicate the keypad key which can be used to change the color.

The X field sets the amount each of these adjustor buttons changes from the current color.

Clicking on any of these fields causes it to replace the current color. Each adjustor button is then re-computed based on the new selection.

R, G, B

These fields show the RGB value of the current color. They may be edited or scrolled to affect the current color.

Add

When the palette is not full, this button adds the current color to the palette after the selected color.

Change

Changes the selected color in the palette displays to the current color described by the RGB fields (and displayed in the center of the Adjustor Pad).

Delete

Removes the selected color from the palette. The last color cannot be deleted.

Restore

Restores the palette to its state before you began diddling with it.

Save As...

Saves the palette under a new name. Displays a list of all current palette names and prompts for a new name.

Save

Saves the changes to the palette. Will prompt for a new name if the current palette name is empty or (new).

OK

Exits the palette editor, using the edited palette to display the set.

Cancel

Exits the palette editor, canceling changes to the current palette (any palettes you saved are still saved, though).


Options Menu

Palette

Display

Compute

Coördinates

TCP/IP Server

Full Screen

Statistics

Toolbar


Options-Palette
 Palette	Ctrl+P

Displays this dialog box, which allows the selection of a color palette. The image does not have to be recalculated when changing palettes; each iteration count is simply assigned a new color. The available palettes are in the file MANDEL.PAL. If this file does not exists, Mandel creates it with several default palettes. You may modify or add to this file with the Edit Palette option.

The Wrap Palette check box indicates whether Mandel should repeat the palette colors over the range of possible colors (up to 200).

The Random palette causes Mandel to randomly select 200 colors.

Most of the color palettes are designed for 256-color displays; each color will be mapped to the nearest solid color on 16-color displays.


Options-Display
 Display 	Ctrl+D

This menu item shows the following dialog box. Each field is described below.

Grid Size

Defines the size grid to be computed. This will be the same as the window area if the Adjust Grid to Window Size box is checked. Full Screen mode disables this field.

Adjust Grid to Window Size

Causes the computational area to be redefined if the window size is changed (and vice versa). Clearing this box allows you to generate images larger than the display area. In this case, scroll bars will appear in the window if it is smaller than the grid size and re-sizing the window will not cause computations to restart.

Show Progress in Title Bar

When checked, the approximate percent complete and time remaining will display in the title bar and icon title.

Flash Icon when Complete

Flashes the icon when computations are complete.

Animation Direction	256

Specifies the direction for palette animation. See Colors-Animate for more information on palette animation.

Animation Speed	256

Specifies the delay, in milliseconds, between subsequent palette animation rotations. Use large delays for rotating palettes to select a desired configuration; use small delays for a mind-bending affect.


Options-Compute
 Compute	Ctrl+C

Displays a dialog box which allows you to specify computation options. These options determine the accuracy, speed and valid range of computations used to compute the Mandelbrot set.

Compute Method

Determines the computational method Mandel uses to compute the set. Your system may not be capable of all methods; for example, systems without a math co-processor cannot run the in-line double or floating methods. Only those methods which are available on your system will display in the combo box.

32-bit Fixed Point	Computes points of the set using 32-bit fixed-point math. The actual format uses 24 bits for the fractional part, 7 bits for the integral part and 1 bit for the sign.

32-bit Fixed Point(386)	Uses the same number format as 32-bit Fixed Point, but uses 80386 instructions for efficiency.

64-bit Fixed Point	Allows 56 bits for the fraction, 7 bits for the integer and 1 sign bit. Because of the additional add and multiply instructions, this method is about 4 times slower than 32-bit Fixed Point. However, it will allow much deeper zooming into the set.

64-bit Fixed Point(386)	Same as 64-bit Fixed Point, except that it uses 80386 instructions for efficiency.

Double Floating(Library)	Uses library routines for double-precision floating point math. Like Single Floating-Library, this is extremely slow but allows you to delve deep into the set.

Double Floating(Inline)	Uses the 80x87 math co-processor to perform the math, like Single Floating-Inline. Math co-processor required.

TCP/IP Compute Server	Communicates with a remote system over TCP/IP (Local ethernet, or the Internet) which actually performs the calculations. Depending on the speed of the compute server, this may be significantly faster than the local PC. Requires the retail version of Mandel, which includes source for the program to run on the server. See also the Server Setup dialog box.

Fast Fill Area Size

Here you may choose the size area Mandel uses to optimize computations. When (none) is selection, Mandel computes each point in the selected grid individually. Any other Fast Fill Area Size causes Mandel to divide the grid into areas of this size. Each of these areas is partially computed (depending on the Pessimistic setting bellow); if all of these partial points are identical, then the area is filled. Otherwise, the area is sub-divided into four smaller areas, and Fast Fill is recursively attempted on each of these areas.

Pessimistic

If selected, this check box causes the Fast Fill routines to completely compute the perimeter of the area, virtually guaranteeing that the fast fill is accurate. Otherwise, only the corner and center points are computed; in this case, some loss of accuracy may occurespecially at large fill area sizes.

Iteration Limit

The limit to which Mandel carries computations for each point. To start with 50 to 100 is a good range of values. The deeper you delve, the larger this limit must be to see an accurate representation. In general, areas near the set (black in most Palettes) are intricate; if edges are blunt and uninteresting, you should raise the limit for an accurate view.

For the most interesting colored views, selection an iteration limit that is a multiple of the palette size less one; for example, if the current palette has 57 colors, choose an iteration limit that is a multiple of 56.

Priority

This field selects the number of points that Mandel computes before relinquishing control to Windows. The higher the priority, the faster Mandel computes the setbut the slower other applications will run.

The Fast Fill Area Size also affects the priority. Mandel will not release control during computation of the area. See Restrictions for details.

Exclusive

Checking this box will cause Mandel to take control of the system during the entire computation. No other application will run until the set is complete. Use this option with care, as there is no escape other than a reboot or the "three-fingered-salute".


Options-Coordinates
 Coördinates	Ctrl+O

Displays and allows changes to the current X and Y extents being drawn using this dialog box:

X from

Selects the minimum value which Mandel uses for the x (real) coördinate.

X to

Selects the maximum value which Mandel uses for the x (real) coördinate.

Y from

Selects the minimum value which Mandel uses for the y (imaginary) coordinate.

Full Set

This button causes Mandel to set the coördinate values for the entire set.Mandel computes Y to and Step value based on the values given for the above and the set size, which is specified in the Display Options dialog box.

A miniature version of the Mandelbrot Set also appears in this dialog box. A red box outlines the coördinate limits if they are sufficiently far apart to see as a box; otherwise, a cross-hair indicator intersects there.

If the current window lies wholly or partially outside this representation of the set, the indicator is not accurate.


Options-TCP/IP Server
TCP/IP Server	Ctrl+T

Shows this dialog box for selecting the name and address of a compute server for use with the TCP/IP Server compute method:

Host Name

This field specifies the Internet host name or address of a UNIX system running the mandeld daemon. Mandeld is included (in portable UNIX source code format, for use with TCP/IP and inetd) with the retail version of Mandel. Mandeld must be entered in the /etc/inetd.conf configuration file on the server.

Service

Specifies the service name or IP port number for connecting to mandeld. This should be the same number as entered in the /etc/services file for the Mandel service.

Further information on using a UNIX compute server is included with the source for mandeld in the retail distribution.


Options-Full Screen
 Full Screen	F7

This option causes Mandel to use the entire display for the set. It expands the window to fill the screen and removes all window ornamentation, including the menu bar, scroll bars and borders. The grid size is set to the size of the screen. See the Display Options dialog box for more information on grid size.

The menu bar is unavailable in full screen mode, but you can get floating menus by pressing F10 or the right mouse button anywhere in the window. You will see the same options as available on the menu bar.


Options-Statistics
Statistics	F8

Displays statistics from the current or last computation, updated approximately every two seconds.


Options-Toolbar
Toolbar	Ctrl+B

This menu selection toggles the Toolbar on or off.


Help Menu
 Help Menu	F1

Displays Windows Help for Mandel.


Keyboard

There are two keyboard modes: Selection and Scrolling. The general function of keys remains the same between the two modes, but in Selection mode, the keystrokes generally apply to the selection area, while in Scrolling mode, keystrokes apply to the currently displayed window into the set. Scrolling mode is only available when the size of the set is larger than the size of the window. (See Automatic Window Adjustment in the Display Options dialog box).

Scrolling Mode

F2	Create a selection area and enter Selection mode.

←	Move the viewing window to the left.

→	Move the viewing window to the right.

↑	Move the viewing window up.

↓	Move the viewing window down.

Selection Mode

ESC	Cancel selection mode

←	Move the selection area to the left.

→	Move the selection area to the right.

↑	Move the selection area up.

↓	Move the selection area down.

PAGE UP	Expand the selection area

PAGE DOWN	Contract the selection area

ENTER	Selection complete - shows the Selection Buttons .

Modifiers

In both Selection and Scrolling mode, the CTRL and SHIFT keys modify the action of any arrow or page key.

SHIFT	Moves or sizes by a larger increment (one-third the width or height).

CTRL	Moves or sizes by a smaller increment (a single pixel).

Accelerators

The following keys are menu accelerators. Descriptions of each item are in the Menus section:

Ctrl C	Display the Compute Options dialog box.

Ctrl D	Show the Display Options dialog box.

Ctrl O	Show the Coördinates dialog box.

Ctrl P	Show the Palette dialog box.

Ctrl S	Save current image.

Ctrl T	Show the Server Setup dialog box.

F1	Show Help Contents.

F3	Rotate the current palette.

F4	Toggle palette animation.

F5	Shuffle the colors in the current palette.

F6	Sort current palette by spectrum value.

Shift F6	Sort current palette entries by intensity, lightest to darkest.

Ctrl F6	Sort current palette entries by intensity, darkest to lightest

F7	Toggle Full-Screen mode.

F8	Toggle display of the Statistics window.

F9	Execute the Palette Editor for the current palette.


Toolbar
Toolbar	Ctrl+B

The toolbar allows you to easily select many Mandel operation with the mouse. It is available in both windowed and Full Screen modes. Selections available from the Toolbar are marked with the appropriate button in this Help file.

Save

Open

Select Palette

Create a random color palette

Shuffle colors

Sort colors by spectrum

Rotate colors

Animate palette	256

Edit the current color palette	256

Full Screen mode

Display and select Coordinates

Select Compute options

Select Display options

Print the current image (not yet supported)

Get Help

Exit the Mandelbrot program


Selecting and Zooming

A portion of the image may be selecting by dragging the mouse or via the Keyboard. The shape of the selected area is constrained by the dimensions of the current window. Once an area is selected, a set of buttons will appear:

Zoom

Zooms in, in the current window, to the selected area and re-computes for that area.

Spawn

Zooms in, in a new window, to the selected area and computes for that area. Current options, such as selected palette, are passed to the new window.

Copy

Copies the selected area to the clipboard in DIB (Device-Independent Bitmap) and Bitmap formats. The current palette is also copied.

Cancel

Cancels the select operation and removes the selection rectangle.


Restrictions

Sorting colors after animating or rotating with Wrap Palette off (in the Palette dialog box) may result in the loss of some colors.

Priority (in Compute Options) translates to the number of points to compute on each pass; consequently, slower computational methods may effectively take over the machine at relatively low priorities.

When you select Fast Fill optimization in the Compute Options dialog box, Mandel will only release control between areas; thus, selecting a 33x33 fast fill area will result in an effective priority of at least 128 to 999 (4x-4 to x2), depending on the complexity of each area.

The Flash Icon option in the Display Options dialog box does not work.

Palette Animation is extremely slow on ATI Wonder Super VGA cards using the WindowsTM 3.1 drivers. The WindowsTM 3.0 drivers animate properly, even under 3.1.

In the Coördinates dialog box, if the current window lies wholly or partially outside the representation of the set, the box or hairline indicator is not accurate.

The Palette Editor will not allow you to paste beyond the current select range; there is no way to add colors to a palette except one at a time.

The Current range and Full palette controls in the Palette Editor have no keyboard interfaceyou have to use the mouse.


Ordering
Ordering Information

Mandel is distributed as freeware; distribute it freely. If you would like to receive the latest version (including palette editing, source code for TCP/IP server mode and printing), please send $15.00 ($40.00 for complete source code) to:

	Phillip Crews cerious software 5424 Chedworth Drive Charlotte, NC 28210 (704)523-5415
Producing outstanding systems and technical software to satisfy unique and unusual demands.

Please also send any suggestions or comments to this addressor email to:

CompuServe:	71501,2470

Internet:	71501.2470@compuserve.com